package com.window;

import com.event.AccountEvent;
import javax.swing.*;
import java.awt.*;

public class Register extends JFrame {
    FlowLayout flowlayout;//定义一个布局
    JLabel bgimg;
    JLabel title;//
    JLabel name;
    public static JTextField nametext;
    JLabel account;
    public static JTextField accounttext;
    JLabel password;
    public static JPasswordField passwordtext;
    JLabel okpassword;
    public static JPasswordField okpasswordtext;
    public static JButton reg;
    JPanel jpanel_1;//放图片与其他盘子
    JPanel jpanel_2;//放标题
    JPanel jpanel_3;//放注册内容
    final int WIDTH = 450;//框架宽度
    final int HEIGHT = 400;//框架高度

    public Register() {
        super("注册界面");
        init();
        setVisible(true);//设置窗口可视化
        setResizable(true);//设置窗口大小可变
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置默认关闭方式
        validate();//让组件生效
        setALLTag();
        allevent();
    }

    void init() {

        //设置窗口大小与位置
        flowlayout = new FlowLayout(FlowLayout.CENTER);//布局居中
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int width = screenSize.width;
        int height = screenSize.height;
        int x = (width - WIDTH) / 2;
        int y = (height - HEIGHT) / 2;
        this.setBounds(x, y, WIDTH, HEIGHT);//设置窗口位置与大小

        jpanel_1 = new JPanel();//初始化盘子1
        jpanel_1.setBounds(0, 0, WIDTH, HEIGHT);//设置盘子1位置与大小
        jpanel_1.setLayout(null);//设置布局为空

        jpanel_2 = new JPanel();//初始化盘子2
        jpanel_2.setBounds(0, 40, WIDTH, 50);//设置盘子2位置与大小
        jpanel_2.setLayout(flowlayout);//设置盘子内容居中布局
        jpanel_2.setOpaque(false);//设置盘子2透明

        jpanel_3 = new JPanel();//初始化盘子3
        jpanel_3.setBounds(50, 100, 350, 500);//设置盘子3位置与大小
        jpanel_3.setLayout(flowlayout);//设置盘子内容居中布局
        jpanel_3.setOpaque(false);//设置盘子3透明


        //设置背景图片
        ImageIcon img = new ImageIcon("src/img/2.jpg");//将图片放到img变量中
        bgimg = new JLabel(img);    //初始化bgimg
        bgimg.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());//设置背景图片位置

        //设置标题
        title = new JLabel("学生信息管理系统账号注册");//初始化title
        Font f = new Font("宋体", Font.BOLD, 28);//初始化字体
        title.setFont(f);//设置标题字体风格
        title.setForeground(Color.CYAN);//设置标题字体颜色

        //设置注册姓名
        name = new JLabel("姓    名 ");
        Font f1 = new Font("宋体", Font.BOLD, 22);//初始化字体
        name.setFont(f1);//设置名字字体风格
        name.setForeground(new Color(225, 228, 181));//设置名字字体颜色
        nametext = new JTextField(18);
        nametext.setPreferredSize(new Dimension(180, 28));//设置文本框大小
        nametext.setForeground(new Color(224, 57, 151));//设置文本框字体颜色
        nametext.setFont(f1);
        nametext.setText("输入你的姓名");


        //设置注册账号与账号文本框
        account = new JLabel("账    号 ");//初始化account
        account.setFont(f1);//设置账号字体风格
        account.setForeground(new Color(225, 228, 181));//设置账号字体颜色
        accounttext = new JTextField(18);//初始化accounttext
        accounttext.setPreferredSize(new Dimension(180, 28));//设置文本框大小
        accounttext.setForeground(new Color(224, 57, 151));//设置文本框字体颜色
        accounttext.setFont(f1);
        accounttext.setText("输入6-8位英文字母");


        //设置密码与密码框
        password = new JLabel("密    码 ");//初始化password
        password.setFont(f1);//设置密码字体风格
        password.setForeground(new Color(225, 228, 181));//设置密码字体颜色
        passwordtext = new JPasswordField(18);//初始化passwordtext
        passwordtext.setPreferredSize(new Dimension(180, 28));//设置密码框大小
        passwordtext.setForeground(new Color(224, 57, 151));//设置密码框字体颜色
        passwordtext.setFont(f1);


        //设置确认密码与确认密码框
        okpassword = new JLabel("确认密码 ");//初始化okpassword
        okpassword.setFont(f1);//设置确认密码字体风格
        okpassword.setForeground(new Color(225, 228, 181));//设置确认密码字体颜色
        okpasswordtext = new JPasswordField(18);//初始化okpasswordtext
        okpasswordtext.setPreferredSize(new Dimension(180, 28));//设置确认密码框大小
        okpasswordtext.setForeground(new Color(224, 57, 151));//设置确认密码框字体颜色
        okpasswordtext.setFont(f1);


        //设置注册按钮
        reg = new JButton("注册");
        reg.setFont(f1);
        reg.setBackground(new Color(8, 189, 252));//设置登录按钮背景颜色
        reg.setForeground(new Color(255, 215, 0));//设置登录按钮字体颜色
        reg.setBounds(170, 250, 120, 40);

        //添加操作
        jpanel_3.add(name);
        jpanel_3.add(nametext);
        jpanel_3.add(account);
        jpanel_3.add(accounttext);
        jpanel_3.add(password);
        jpanel_3.add(passwordtext);
        jpanel_3.add(okpassword);
        jpanel_3.add(okpasswordtext);
        jpanel_1.add(reg);
        jpanel_1.add(jpanel_3);//将盘子3放到盘子1里
        jpanel_2.add(title);//将标题放到盘子2里
        jpanel_1.add(jpanel_2);//将盘子2放到盘子1里
        jpanel_1.add(bgimg);//将图片放到盘子1里
        this.add(jpanel_1);//将盘子1放到窗口里
    }

    void setALLTag() {
        reg.setName("reg");
    }

    void allevent() {
        AccountEvent listener_1 = new AccountEvent();
        reg.addActionListener(listener_1);
    }
}

